El proyecto ha sido diseñado para soportar las principales características semánticas de las consultas y sentencias de creación de vistas y tablas SQL. Así, se ha seleccionado un subconjunto representativo de estas sentencias SQL para las cuales nuestro sistema resuelve el problema de generar casos de prueba. Dando soluciones a este lenguaje SQL reducido damos también solución a gran parte del lenguaje SQL no soportado directamente ya que muchas de las sentencias que no están contempladas pueden ser transformadas a sentencias equivalentes admitidas por nuestro sistema (ver apéndice \ref{app:ejemploEqivalencia}). Consideramos como trabajo futuro la extensión de la herramienta para soportar una mayor variedad de expresiones SQL.

Nuestra herramienta admitirá código SQL de definición de bases de datos con las siguientes características:

\begin{itemize}
\item \textbf{Claves} primarias y ajenas \begin{verbatim}PRIMARY KEY, FOREIGN KEY \end{verbatim}
\item \textbf{Uniones e intersecciones} de consultas \begin{verbatim}UNION, INTERSECTION \end{verbatim}
\item \textbf{Expresiones aritmético-lógicas} en las secciones FROM y SELECT
\begin{itemize}
\item \textbf{Expresiones lógicas} \begin{verbatim}AND, OR, NOT, =, <, <=, =>,<> \end{verbatim}
\item \textbf{Expresiones aritméticas} \begin{verbatim}+, -, /, *\end{verbatim}
\end{itemize}
\item \textbf{Tipos} enteros no nulos \begin{verbatim}INT, INTEGER\end{verbatim}
\item \textbf{Consultas básicas} de la forma \cod{SELECT} E1 ... En \cod{FROM} R1 ... RM \cod{WHERE} C
con posibles renombramientos de las expresiones  de la clausula \cod{SELECT} (E1 ...En) y las relaciones de la clausula \cod{FROM} (R1 ... Rm)
\item \textbf{Consultas existenciales} anidadas. El hecho de admitir este tipo de consultas dota a nuestra herramienta de gran versatilidad en cuanto lenguaje SQL admitido, y su tratamiento para la generación de restricciones resulta de gran importancia \cite{prole2012}. \begin{verbatim}EXISTS, NOT EXISTS\end{verbatim}
\item \textbf{Consultas con agregados}\footnote{La versión actual del prototipo no soporta aún esta característica.} \begin{verbatim} GROUP BY, HAVING \end{verbatim}
\end{itemize}

Además el código admitido tendrá las siguientes restricciones:
\begin{itemize}
\item \textbf{Clausula \cod{FROM} sin subconsultas}. Esto no supone una pérdida de generalidad pues las subconsultas en el \cod{FROM} pueden ser sustituidas por vistas, admitidas en nuestra herramienta.
\item \textbf{\cod{DISTINCT} no permitido}. El operador \cod{DISTINCT} puede ser sustituido por consultas con agregados equivalentes.
\item \textbf{Operador \cod{MINUS}, operaciones \cod{JOIN} y valores nulos no considerados}. Por simplicidad no se consideran estas características, aunque podrían ser incluidas en futuras implementaciones
\item \textbf{Consultas recursivas} no contempladas en la herramienta.
\end{itemize}

El diseño del prototipo permite además la inclusión de nuevos tipos de datos.
